﻿Ext.override(Ext.ux.grid.filter.ListFilter, {
	getSerialArgs: function () {
		var args = {
			type: 'list',
			value: this.phpMode
							? this.getValue().join(',')
							: Ext.util.JSON.encode(this.getValue())
		};
		return args;
	}
});

// 重写 getFilterData
// 根据其配置的filter属性是否包含dataField属性及值作出判断，跟据dataField属性及值是否存在，从而生成特定的filter
// 使得其store reload时fitter参数中field的值正确
// 具体使用在表格中可编辑下拉框列进行fitter的特殊处理
// 票据操作明细示例 如下
// BillTypeStore.load({
// callback : function(r) {
// filters.addFilter({
// type : 'list',
// dataIndex : 'BillType.Name',
// dataField : 'BillType.Id',
// options : JsHelper.GetFilterListData(r, 'Id',
// 'Name')
// })
// }
// });
Ext.override(Ext.ux.grid.GridFilters, {
	getFilterData: function () {
		var filters = [], i, len;
		this.filters.each(function (f) {
			if (f.active) {
				var d = [].concat(f.serialize());
				for (i = 0, len = d.length; i < len; i++) {
					filters.push({
						field: Ext.isEmpty(
														f.dataField, false)
														? f.dataIndex
														: f.dataField,
						data: d[i]
					});
				}
			}
		});
		return filters;
	}
});
